package com.htfyun.eink;

/**
 * <p> eink 屏显示模式:</p>
 * <p>
 *  DU模式:  只能从黑到白或者白到黑，没有其他灰阶;
 *          从白到黑的时候，没有残影。刷新一次需要时间大概是250ms。擦除情况下一般用这种模式；
 * </p>
 *
 * <p>
 *  GC模式： 最完全的刷新模式，可以支持16灰阶，没有残影;
 *          但是刷新时间最长，刷新一次大概需要550ms。刷新过程中会闪一下黑色。这种模式可以恢复屏幕显示到正常状态;
 *          注: 他是整个屏幕区域强制刷新;
 * </p>
 *
 * <p>
 *  GL模式： 也是完全的刷新模式，支持16灰阶。刷新时间和GC一样，550ms左右;
 *          这个刷新模式从白色变到白色不操作，所以刷新过程中看不到黑色闪烁;
 *          但是这个模式有一个缺点：如果界面显示异常了，残影严重，这种模式无法正确的消除残影;
 * </p>
 *
 *
 * <p>
 *  GCX 模式: 跟GC模式一样, 差别是他不是整屏刷新, 而是一个View区域刷新;
 * </p>
 *
 *
 * <p>
 *  GLX模式：跟GL模式一样. 但他在手写的时候, 智能刷新显示区域(显示区域就是View的rect);
 *          比如在手写的时候, 有个GC/GL模式的View会闪烁, 此时根据手写需要, 此View区域会不刷新;
 *          但是把这个View设成DU模式后, 他会保持刷新;
 * </p>
 *
 */
public enum EinkShowMode {

    NONE(0),

    //DU, GC, GL 是View的主要模式
    DU(1),
    GC(2),
    GL(3),

    //下面几个模式是针对手写
    GCX(10),
    GLX(13),
    ;

    private final int showMode;
    EinkShowMode(int mode) {
        this.showMode = mode;
    }

    public int getShowMode() {
        return showMode;
    }
}
